﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Service;
using RegistroMascotas.Modelo;

namespace RegistroMascotas2
{
    public partial class registrense : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                cargarTipoUsuarios();
                btnRegistrar.Visible = true;
            }
        }

        private void cargarTipoUsuarios()
        {
            try
            {
                if (Session["TipoUsuario"].ToString() == "Admin")
                {
                    tipoUsuario.Text = "Centro";
                }
                else
                {
                    List<string> resultado = GestorDeRegistro.traerTipoUsuarioTodos(Session["TipoUsuario"].ToString());

                    foreach (string tipo in resultado)
                    {
                        ddlUsuarios.Items.Add(tipo);
                    }

                    ddlUsuarios.Visible = true;
                    tipoUsuario.Visible = false;
                }
            }
            catch (Exception e)
            {
                lblError.Text = e.Message;
                lblError.CssClass = "errores";
            }
        }

        protected void btnRegistrar_Click(object sender, EventArgs e)
        {
            Dueño d;
            Veterinario v;
            Centro c;
            bool exito = false;
            DropDownList ddlSex = (DropDownList)lvSexoDatos.FindControl("ddl_Sexo");
            TextBox dniMatriCuit = (TextBox)lvDniMatriculaCUIL.FindControl("dniMatriculaCUIT");

            try
            {
                if (ddlUsuarios.SelectedValue.ToString() == "Dueño")
                {
                    d = new Dueño(nombre.Text, long.Parse(dniMatriCuit.Text), telefono2.Text, domicilio.Text, usuario.Text, contrasena.Text,
                        "Registrado", correo.Text, localidad.Text, provincia.Text, telefono.Text, 3,  ddlSex.SelectedValue);

                    exito = GestorDeRegistro.registrarDueñoVeterinario(d, 3);
                }
                else if (ddlUsuarios.SelectedValue.ToString() == "Veterinario")
                {
                    v = new Veterinario(nombre.Text, long.Parse(dniMatriCuit.Text), telefono2.Text, domicilio.Text, usuario.Text, contrasena.Text,
                        "Registrado", correo.Text, localidad.Text, provincia.Text, telefono.Text, 4, ddlSex.SelectedValue);

                    exito = GestorDeRegistro.registrarDueñoVeterinario(v, 4);
                }
                else
                {
                    c = new Centro(nombre.Text, long.Parse(dniMatriCuit.Text), telefono2.Text, domicilio.Text, usuario.Text, contrasena.Text, "Registrado",
                            correo.Text, localidad.Text, provincia.Text, telefono.Text, 2);

                    exito = GestorDeRegistro.registrarCentro(c, 2);
                }

                if (!exito)
                {
                    lblError.Text = "No se ha podido registrar el usuario ingresado.";
                    lblError.CssClass = "errores";
                }
                else
                {
                    limpiarControles();
                    btnRegistrar.Visible = false;
                    lblNotificacion.Text = "El registro se ha realizado con exito.";
                }
            }
            catch (Exception ex)
            {
                lblError.Text = ex.Message;
                lblError.CssClass = "errores";
            }
        }

        private void limpiarControles()
        {
            TextBox dniMatriCuit = (TextBox)lvDniMatriculaCUIL.FindControl("dniMatriculaCUIT");

            nombre.Text = "";
            domicilio.Text = "";
            telefono.Text = "";
            telefono2.Text = "";
            usuario.Text = "";
            contrasena.Text = "";
            contrasena2.Text = "";
            correo.Text = "";
            dniMatriCuit.Text = "";
            localidad.Text = "";
            provincia.Text = "";
        }

        protected void btnVolver_Click(object sender, EventArgs e)
        {
            if (Session["TipoUsuario"].ToString() == "Admin")
            {
                Response.Redirect("~/login-admin.aspx");
            }
            else if (Session["TipoUsuario"].ToString() == "Centro")
            {
                Response.Redirect("~/login-municipio.aspx");
            }
        }
    }
}